package com.guet.principle.singleresponsibility;


/**
 * 设计模式的原则：（程序员在编程时，应当遵守的原则，
 *    也是各种设计模式的基础（即设计模式为什么这样设计的依据））
 * 1. 单一职责原则
 * 2. 接口隔离原则
 * 3. 依赖倒转（倒置）原则
 * 4. 里氏替换原则
 * 5. 开闭原则
 * 6. 迪米特法则
 * 7. 合成复用原则
 */

/**
 * @author MicahYin
 * @date 2020/10/28 15:19
 * java设计模式  ——  单一职责原则
 * 1） 降低类的复杂度，一个类只负责一项职责
 * 2） 提高类的可读性，可维护性
 * 3） 降低变更引起的风险
 * 4） 通常情况下，我们应该遵守单一职责原则，只有逻辑足够简单，
 *     才可以在代码级违反单一职责原则：只有类种方法数量足够少，可以在方法级别保持单一职责原则
 */
public class SingleResponsibility1 {
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.run("摩托车");
        vehicle.run("汽车");
        vehicle.run("飞机");
    }
}

/**
 * 交通工具类
 * 方案1：
 * 1. 在方式 1 的run方法中，违反了单一职责原则
 * 2. 解决的方案非常的简单，根据交通工具运行的方法不同，分解成不同类即可
 */
class Vehicle{
    public void run(String vehicle){
        System.out.println(vehicle+"在公路上运行...");
    }
}
